package com.tedu.api.list;

import java.util.Collection;

/**
         *          ①创建父类：Fruit----属性：name名字  | 方法：获取名称  | 构造器
         *          ② 创建两个子类：Apple、Orange--构造器：传水果名
         *            创建TestJob类 ？ extends 父类
         *            约束----静态的方法printFruit()
         *            约束要求：只能是继承父类的子类才可以使用
         *            单元测试：testE()测试--约束是否限制成功
         *     实际开发应用中，高级程序员制定！
         */
public class Fruit {
    private String name;  //私有属性   name  水果名称

     public String getName() {  //获取名字
         return name;
     }

     public Fruit(String name) {  //有参数构造器
         this.name = name;
     }
 }
 //创建两个子类：Apple和Orange继承Fruit
class Apple extends Fruit{
     public Apple() { //Apple a=new Apple();  打印水果名称
         super("苹果");
     }
 }
class Orange extends Fruit{
    public Orange() {
        super("橘子");


    }

}
//创建TestJob类---静态方法printFruit：添加约束：传入类型一定是父类的子类
class TestJob{ //  ?【任意类型】 extends Fruit
              //传入类型必须继承与Fruit父类
    public static void printFruit(Collection<? extends Fruit> fruits){
        //增强for循环：父类Fruit 名称
        for(Fruit fruit:fruits){  //获取继承【Apple,Orange】与父类的功能
            //打印对应对象名称
            System.out.println(fruit.getName());

        }
    }
}

class Pear{

}
